Make the cheese: Line a colander with a double layer of damp cheesecloth; put in the sink. Bring the milk to a simmer in a wide nonreactive pot over medium heat, stirring occasionally with a wooden spoon. Remove from the heat and stir in the yogurt, lemon juice and 2 teaspoons salt. Continue to stir gently until large curds form and separate from the whey, 1 to 2 minutes. Strain through the cheesecloth-lined colander, discarding the whey. Gather the ends of the cheesecloth and twist to squeeze out any excess whey (run the sides of the bundle under cool water if it's too hot to handle). Tie the ends of the cheesecloth around a wooden spoon handle and lay the spoon over the colander, letting the bundle dangle; let drain, 10 minutes.
Untie the bundle and twist the cheesecloth again, squeezing out any more whey. Lay the bundle on its side on a plate. Top with another plate and weigh it down with a large can. Refrigerate until a firm cake forms, about 1 hour; unwrap and refrigerate in an airtight container until ready to use, or up to 2 days.
Fry the cheese: Cut the cheese into 3/4-inch cubes. Toss in the flour until well coated, shaking off any excess. Heat about 1/2 inch vegetable oil in a medium skillet over medium-high heat until shimmering. Carefully add the cheese and fry, turning occasionally, until golden brown, 2 to 4 minutes. Remove with a slotted spoon and drain on paper towels. Season lightly with salt and set aside.
Make the spinach: Bring a large pot of generously salted water to a boil. Working in batches, cook the spinach until just tender, about 30 seconds. Remove with a slotted spoon and transfer to a bowl of salted ice water. Drain and squeeze dry, then chop and set aside.
Pulse the ginger, garlic, jalapeno, coriander, cumin, turmeric and 1/2 teaspoon salt in a food processor until finely chopped. Whisk the yogurt, 1/4 cup water and 1 teaspoon salt in a small bowl.
Heat 2 tablespoons butter and the vegetable oil in a wide pot over medium-high heat. Add the onion and cook, stirring, until deep golden brown, about 10 minutes. Add the ginger mixture and cook, stirring, until toasted, about 5 minutes (add a splash of water if the mixture is sticking). Reduce the heat to medium low; add 1/2 cup water and scrape up any browned bits, then add the cooked spinach and stir until heated through, about 4 minutes. Stir in the yogurt mixture and simmer gently until slightly thickened, about 5 minutes. Add the fried cheese and the remaining 2 tablespoons butter and cook, stirring, until heated through, about 1 minute. Season with salt. Photograph by Anna Williams