In a large bowl, whisk together the flour, granulated sugar, and salt. Add the cold, cubed butter and use a pastry cutter or your fingers to mix until the mixture resembles coarse crumbs.
Gradually add 1/4 cup of cold water, mixing until the dough comes together. Be careful not to overwork it. Shape the dough into a disk, wrap it in plastic wrap, and refrigerate for at least 1 hour.
Preheat your oven to 400°F (200°C). Line a baking sheet with parchment paper.
On a lightly floured surface, roll out the chilled dough into a rectangle about 1/4 inch thick. Cut the dough into squares, approximately 4x4 inches.
In a medium bowl, mix the softened cream cheese, powdered sugar, and vanilla extract until smooth.
Place a tablespoon of the cream cheese mixture in the center of each dough square. Fold the corners of the square towards the center to create a pocket and pinch to seal.
In a small bowl, whisk together the beaten egg and milk. Brush the egg wash over each Danish.
Bake in the preheated oven for 15-20 minutes or until golden brown. Let cool slightly before serving.