Solución:
Resultó que Scikit-Learns LabelBinarizer me dio más suerte al convertir los datos a un formato codificado en caliente, con la ayuda de la solución de Amnie, mi código final es el siguiente
import pandas as pd
from sklearn.preprocessing import LabelBinarizer
jobs_encoder = LabelBinarizer()
jobs_encoder.fit(data['Profession'])
transformed = jobs_encoder.transform(data['Profession'])
ohe_df = pd.DataFrame(transformed)
data = pd.concat([data, ohe_df], axis=1).drop(['Profession'], axis=1)
OneHotEncoder Codifica características enteras categóricas como una matriz numérica one-hot. Es Transformar El método devuelve una matriz dispersa si sparse = True, de lo contrario, una matriz 2-d. No puedes lanzar un Matriz 2-d (o matriz dispersa) en una Serie Pandas. Debe crear una Serie Pandas (una columna en un marco de datos Pandas) para cada categoría.
Recomendaría usar pandas.get_dummies insted:
data = pd.get_dummies(data,prefix=['Profession'], columns = ['Profession'], drop_first=True)
EDITAR:
Usando Sklearn OneHotEncoder:
transformed = jobs_encoder.transform(data['Profession'].to_numpy().reshape(-1, 1))
#Create a Pandas DataFrame of the hot encoded column
ohe_df = pd.DataFrame(transformed, columns=jobs_encoder.get_feature_names())
#concat with original data
data = pd.concat([data, ohe_df], axis=1).drop(['Profession'], axis=1)
Otras opciones: Si está ajustando hiperparámetros con GridSearch, se recomienda usar ColumnTransformer y FeatureUnion con Pipeline o directamente make_column_transformer