Preheat your oven to 375 degrees F. Thaw your frozen spinach in the microwave. (I can fit the contents of two packages in a glass 9x13 pan and use high heat for 5 minutes.)
While the spinach is in the microwave, peel and chop 1/4 of a large red onion. Grate your cheeses in a blender or food processor.
When the spinach is thawed, drain out the liquid in the sink by grabbing small handfuls of spinach and squeezing them over a strainer. Set your dried spinach in a large mixing bowl.
Drain the artichoke hearts. (If using frozen ones, thaw them in the microwave and drain.) Roughly chop the artichoke hearts, leaving some chunks. Pat them dry with a paper towel and add them to your large mixing bowl.
In a sauce pan, melt your butter over medium-high heat. Add the chopped onions and cook them until they are just becoming tender. Add the flour and stir to mix. Continue stirring for another minute.
Add your whipping cream and milk, stirring (or whisking) as you go. Continue stirring, and when the mixture thickens, add your block of cream cheese. Continue stirring, until the cream cheese melts and the sauce is smooth and thick.
Turn off the heat and stir in the Asiago, 1/2 cup Parmesan, red pepper flakes, salt and garlic powder. Pour the sauce over the vegetables in your large mixing bowl and mix well.
Transfer the dip to a greased 9x13 pan (or use two pie dishes or crocks). Spread the dip evenly and top with the remaining 1/4 cup Parmesan.
Bake the dip for 20-25 minutes, or until the dip is bubbly and browned to your liking.
Serve with pita crackers, natural tortilla chips, carrot sticks, or bread. Store leftovers covered in the refrigerator for up to four days. You also can freeze the leftovers and reheat them in the oven or microwave.
If you can find frozen artichoke hearts, use them. BirdsEye is no longer selling them, so I've had to use canned artichoke hearts instead.
You can use 12 ounces of evaporated whole milk in place of the whipping cream and low-fat milk.
You can assemble the dip a couple days ahead, then bake it the day you serve it. You can even bake it ahead of time and then reheat it the day you serve it.