input: Write a python function to read a CSV file, impute missing values with the mean, normalize the data, and then scale it using StandardScaler.
  assert type(preprocess_data('dataset.csv')) == np.ndarray
  assert preprocess_data('dataset.csv').shape == (150, 4)  # Assuming the dataset has 150 rows and 4 columns after preprocessing
output: import pandas as pd
  import numpy as np
  from sklearn.impute import SimpleImputer
  from sklearn.preprocessing import StandardScaler
  
  def preprocess_data(file_path):
      # Read the CSV file
      data = pd.read_csv(file_path)
      
      # Impute missing values with the mean
      imputer = SimpleImputer(strategy='mean')
      data_imputed = imputer.fit_transform(data)
      
      # Normalize the data
      data_normalized = (data_imputed - np.min(data_imputed, axis=0)) / (np.max(data_imputed, axis=0) - np.min(data_imputed, axis=0))
      
      # Scale the data using StandardScaler
      scaler = StandardScaler()
      data_scaled = scaler.fit_transform(data_normalized)
      
      return data_scaled