'In' is more likely to come from American English whereas 'at' is BE. Both at/in school are used interchangeably.
As regards difference in meaning - there is perhaps a slight subtle difference that 'in school' means they attend school - as opposed to having finished school, while 'at school' means they are there now.So "are your children in school" = are they under 16 or 18 ? But "are your children at school" = are they at school today or are they at home.
(but that's from a BE perspective)
Over here, "in school" would be taken to mean present in the building: "Borney isn't in school today: he's away on a field trip."
Otherwise we say "at school": "Borney isn't at school now" would carry the inference that he no longer attends regularly.