The growth of Multiprocessing Systems (MPS) has become a necessity for dealing with complex tasks and speeding up their execution. Increasing the number of processing cores on a single chip produces a vast processing power, but the biggest obstacle is the energy generated from these cores. The traditional techniques guarantee to get the optimal schedule, but they are costly in terms of time and memory storage. In this paper, we propose an Improved Whale Algorithm (IWA) to allocate the dependent tasks in MPS with two objectives minimizing the energy consumption and the makespan. The processing cores are assumed to support Dynamic Voltage and Frequency Scaling (DVFS) as an effective technique to reduce energy. The allocation of tasks in MPS is an NP-hard problem. Inadequate scheduling of tasks can result in consuming energy. Also, the failure to complete the tasks before their predetermined deadlines is a critical issue for real-time applications. We consider three different sources of energy coming from the communication, idle, and active states of the processing cores. We use an initialization procedure to produce a population of candidate schedules that respects the precedence among tasks. In IWA, we employ two different discretization methods to map the continuous values into discrete ones. Two specialized crossover operations are adopted to boost the quality of the candidate schedules while respecting the dependencies among the tasks. IWA implements the Load Balancing Improvement (LBI) strategy to alleviate the load of tasks from heavy cores. LBI plays a vital role in decreasing the static energy consumption. We compare IWA with the other algorithms, and the results show the superiority of IWA.