You can use fresh spinach or frozen spinach for this dip.
To use fresh spinach:Preheat a large, deep cooking pan over medium-low heat and add some oil. Chop spinach while the pan is preheating and add it to the pan. Season with a pinch of salt and stir. Close the pan with a fitted lid and let it cook down completely. Make sure to stir from time to time. Once the spinach is cooked, transfer it onto a mesh strainer and let it cool down. When cooled enough, gently squeeze most liquids out.
If you plan to use frozen spinach, make sure to thaw it completely. Once thawed, squeeze out most of the liquid before adding spinach to the mixing bowl.
The Dip:
Preheat oven to 350° and lightly grease a baking dish that's about 2 quart in size.
Combine all the ingredients in a bowl and mix very well.
Spread the dip mixture in a baking dish and top it off with some shaved parmesan if you wish.
Bake for about 20 minutes.
Before serving, you can leave the melted parmesan cheese on top or simply stir it into the hot dip.
Notes
Frozen Spinach: feel free to use either frozen or fresh spinach. Fresh spinach needs to be cooked first and frozen spinach should be completely thawed. No matter which route you take, you'll want to make sure to squeeze out most of the liquids from the spinach before stirring it into the dip mixture.
Make Ahead: You can easily make this spinach dip ahead of time. Simply combine all of the ingredients and spread it in the baking dish. Cover the baking dish air-tight and refrigerate. You can refrigerate it up to 24 hours before baking. Take the dip out of the refrigerator about 30 minutes before baking to let it warm up a bit and then bake as instructed in the recipe.
Storing: Store any leftover dip in a air-tight container, in the refrigerator. Properly stored, the dip will last for 3-4 days in the refrigerator. You can eat the dip cold or warm it up.