Preheat the oven to 400 degrees F. Line a sheet pan with parchment paper, set aside.
You will want to make the Bechamel sauce first. In a small saucepan over medium heat, melt the butter. Once melted, whisk in the flour and cook for 1 minute to get the flour taste out.
While whisking constantly, Slowly stream in the milk to avoid any lumps. Repeat doing the same thing with the heavy cream. Once whisked together the mixture should be smoothe.
Next, add the dijon mustard, pepper, and nutmeg, then stir to combine. Whisking the mixture constantly, cooking until the mixture becomes very thick and spreadable (you do not want this to be runny). This could take up to 5 minutes. Remove from the heat.
Place the bread slices on the prepared sheet pan. Place in the oven to toast for 2 minutes, flip the bread slices over, and toast for another 2 minutes.
Spread half of the sauce over 4 slices of the bread, then top with the ham and spread the dijon mustard on top of the ham.
Then add half of the gruyere cheese and then half of the parmesan cheese.
Place the remaining bread slices on top and spread the top with the remaining sauce and add the rest of the gruyere cheese and parmesan cheese.
Place back in the oven and bake for 10 minutes until the cheese is melty. Turn the broiler on high and broil until the cheese on top is golden brown, or until your desired toastiness. Serve immediately.