Place the milk in a medium sized sauce pot and bring to a simmer, stirring occasionally to prevent the bottom from burning.
Meanwhile, measure the yolks and sugar into a medium sized mixing bowl and whisk together. Don't forget to whisk immediately or the sugar will scorch your yolks.
Measure the heavy cream into a large bowl and set aside. Measure the cocoa powder & salt into a small bowl and set to the side as well.
Once the milk has reached a simmer, temper the yolks by pouring about 2 cups worth of the hot milk into the sugar/yolk mixture and whisk immediately. Once combined, add another 2 cups of hot milk and whisk again. This process prevents the eggs from scrambling.
Pour the yolk/sugar/milk mixture back into the pot and cook on medium heat while whisking constantly. Cook until nappe, a term meaning that the mixture is thick enough to coat the back of a spoon. **See photo example.
Once you've reached that stage, turn off the heat and whisk in the cocoa powder and salt relatively quickly. Once combined, pour the hot mixture into the cold cream bowl and whisk everything together.
Place plastic wrap on the surface (touching the liquid mix) and then cover the bowl with a lid as well. Refrigerate the mixture overnight, then churn following the manufacture's instructions for your machine. The recipe will hold in the freezer for up to 3 months (if it lasts that long!). I recommend freezing with plastic touching the surface also to prevent freezer burn.