Preheat the oven to 350 degrees F. Place the hazelnuts (I also include the 3 tablespoons from the soup) on a baking sheet in a single layer. Roast for 10 to 15 minutes, shaking the pan once or twice during cook time.
Once the nuts have roasted, place them in a kitchen towel. Wrap them up in the towel and gently shake the towel back and forth, using your hands to rub the hazelnuts together a bit, removing all the skins. You want to remove as many as you can!
Coarsely chop the hazelnuts into they are in small pieces. Set aside 3 tablespoons for the soup.
Stir together the remaining hazelnuts, parsley, minced garlic, orange zest, salt and pepper. Stir in the olive oil. This can be stored in the fridge for a few days!
Heat a large pot over medium heat and add the butter. Cook, stirring often, for about 5 minutes until the butter starts to brown. Stir in the onions, garlic, salt and pepper. Stir in the crushed red pepper and chopped hazelnuts. Cook for 5 minutes, until the onions soften.
Stir in pumpkin puree, lemon juice, stock and fresh grated nutmeg. Bring the mixture to a boil, then reduce it to a simmer. Cook for 15 minutes. Turn off the heat and carefully transfer the mixture to a blender (or use an immersion blender!) and blend until smooth. Pour the soup back into the pot and heat over low heat.
Stir in the creme fraiche. Taste and season the soup with more salt and pepper if needed. Once the soup warms back up, serve with a drizzle of cream or half and half. Top with a few spoonfuls of the hazelnut gremolata!