The master branch of  Transformers now includes a new pipeline for zero-shot text classification.

You can play with it in this notebook: https://colab.research.google.com/drive/1jocViLorbwWIkTXKwxCOV9HLTaDDgCaw?usp=sharing 2.6k
PR: https://github.com/huggingface/transformers/pull/5760 733
The pipeline can use any model trained on an NLI task, by default bart-large-mnli. It works by posing each candidate label as a “hypothesis” and the sequence which we want to classify as the “premise”. In the first example in the gif above, the model would be fed,
<cls> Who are you voting for in 2020 ? <sep> This example is politics. <sep>

and likewise for each candidate label. It’s therefore important to keep in mind that each candidate label requires its own forward pass. In the single-label case we take the scores for entailment as logits and put them through a softmax such that the candidate label scores add to 1. When multi_class=True is passed, we instead softmax the scores for entailment vs. contradiction for each candidate label independently.
You can also change the hypothesis template. As shown in the formatted example above, the default template is This example is {}. This seems to work well in general, but you may be able to improve results by tailoring it to your specific setting (discussed in the example notebook 2.6k).
Also feel free to check out the blog post 837 I wrote on zero shot a few months back, and our live demo 473 which uses this method for zero-shot topic classification. I hope you find it useful!
Edit: FYI, you will get a big speedup by using this on GPU. You can do this by passing  device=0  where  0  is the device number, to the pipeline factory:
classifier = pipeline("zero-shot-classification", device=0)

We should be updating this to automatically use GPU when available soon.