Probably. The lines below also work.

    distribution['no_data'] = profiles.filter(**{feature: None}).count()

The problem here is that the annotate count magic above does not count null's properly, so they have to be special cased. I've clarified the comment.