Preheat the oven to 400 degrees.
Melt butter over medium heat and stir in the flour to make a roux.
Whisk in the milk and season the liquid with salt, pepper, paprika and cayenne.
Whisk the liquid for 3 to 5 minutes, or until the liquid is thick and coats the back of a spoon.
Remove the sauce from the heat and stir in the cheeses.
In a sauté pan, heat the olive oil.
When the oil is hot, add the onions and sauté for 2 minutes.
Stir in handfuls of spinach at a time, until all the spinach is incorporated.
Add the garlic and artichokes, and sauté for 2 minutes.
Season the vegetables with salt, pepper, paprika and cayenne.
Remove the vegetables from the heat and turn into a mixing bowl.
Fold the cheese sauce into the vegetables.
Pour the mixture into a baking pan.
Sprinkle the pieces of butter on the top. Sprinkle ½ cup parmesan cheese and about ½ tsp of pepper of on the top as well.
Bake the dip for 10 to 15 minutes, or until the top is golden brown.
To make the dippers, I like using a round loaf of bread so that I can use the hollowed out loaf as a bread bowl for serving.
Chop up the bread from the cut-out part of the loaf into bite size pieces.
Place in a mixing bowl and coat with oil, and sprinkle with salt, pepper, paprika, and cayenne.
Turn out in a single layer on a baking sheet and bake at 350 degrees for 10-15 minutes, or until they get toasted.