Ensuring that attributes referenced by a mixin are present in the children class
The point of a mixin, at least as I've always understood it, is to inject
methods into other classes -- and not to create instances of the mixin class
itself. So putting an __init__() in a mixin does seem like an odd pattern. Of
course, __init__() is just a method: why not inject that method too? Fair
enough, but it still feels off. And is it really necessary?
One option is to inject the schema checking method and then call it in a proper
__init__():
class SchemaMixin:

    def _check_schema(self):
        ...

class Todos(SchemaMixin):

    def __init__(self):
        ...
        self._check_schema()

Or just use regular functions and get out of the awkward business of
inheritance. Without knowing more details about your case, I would lean in this
direction.
def check_schema(obj):
    ...

class Todos():

    def __init__(self):
        check_schema(self)

I find myself almost never using inheritance these days -- regular or
mixin-style. I don't have a blanket policy against it, but I increasingly find
that I just don't need it. If a class needs something, I pass it in as an
argument. If multiple classes need the same operation, I use functions.