<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_features_types_from_dataframe(self, data_frame):
 """ Sets the features types from the given data_frame. All the calls except the first one are ignored. """

        if self.__feature_types_set:
            return
        self.__feature_types_set = True

        dtypes = data_frame.dtypes
        for feature in self.__iter__():
            name = feature.get_name()
            type_name = data_type_to_type_name(dtypes[name])
            feature.set_type_name(type_name)