Classification models with multi-class allowed for each record
The task is called multilabel modelling. Many libraries in sklearn support this -http://scikit-learn.org/stable/modules/multiclass.html.

These algorithms generally use one vs rest strategy, building separate binary classifiers for each of the label (zero for all others) and assigning all labels which clear a probability threshold.