We suggest entering Morocco by flying into Marrakesh. It is one of the biggest cities in Morocco and there is a lot to do there. It should definitely be on everyone's list while traveling to Morocco.
Take a night train to Tangier. From Tangier you can get on a direct bus to Chefchaouen or change a bus at Tetouan. The frequency of direct buses to Chefchaouen is less, but there are plenty of buses that ply till Tetouan and then to Chefchaouen. You can't book buses or trains online as you need a Moroccan credit card to do so, but don't worry. Unlike Indian trains, you can find seats even a day before. Get a first class sleeper tickets as the journey is long (overnight), and this would allow for a comfortable journey. Also, make sure you travel by government buses, known as the CTM buses. They will be comfortable any day compared to the local operators. Beware of the annoying touts around the bus station trying to get you into one of the local buses (as they would be getting a commission from the operator), which are very uncomfortable. They would tell you that there are no buses for the rest of the day and all that but just ignore them and head straight to CTM counter for tickets.
You can reach Chefchaouen via Fez as well by simply taking a CTM bus into the city. The buses are direct and the frequency is better compare to Tangier.