First, pour milk in a large bowl and place a fine mesh strainer over the bowl. In a separate medium sized bowl, whisk two egg yolks. Set aside.
Next, In a large saucepan, combine heavy cream, cocoa powder and sugar. Whisk well to evenly to fully incorporate. Heat over medium-high heat until just boiling. Remove the pan from the heat, and whisk in the chocolate in three additions, making sure that all the chocolate pieces are dissolved before adding more chocolate.
Using a soup ladle or large spoon to transfer a very small amount of the warm chocolate mixture to the small bowl with the egg yolks and whisk vigorously. Repeat with another ladle or spoonful, again whisking vigorously.
Next transfer the entire contents of the small bowl back into the saucepan and return to medium-high heat.
Continue to heat the chocolate mixture, stirring constantly, until the liquid begins to thicken slightly. Remove pan from the heat.
Strain the chocolate mixture through the fine mesh sieve and into the bowl containing the fat free milk. (The sieve is there to catch any tiny egg pieces that might have cooked).
Finally, stir in the vanilla and salt until everything is smooth, and then transfer the bowl to the fridge to let it cool completely (about 3 hours).
After three hours, process according to instructions on your ice cream maker, adding any desired mix-ins according to schedule advised for ice cream maker. Once ice cream is finished, freeze or serve. Enjoy!