macOS not allowing me to reallocate free space!
Ok so the error is now solved. What I did!

First I ran diskutil list to view all the active partitions, now I had only on partiton so added a new partiton via DiskUtility

Then I once again ran diskutil list, now I was able to see the newly added partiton

Now what I did ti remove the free space is that I merged both the partitions together 

To merge two partitons I simply ran this command in terminal 

Sayans-iMac:~ sayanhussain$ diskutil mergePartitions
Usage:  diskutil mergePartitions [force] format name
        DiskIdentifier|DeviceNode DiskIdentifier|DeviceNode

Merge two or more pre-existing partitions into one.  The first disk parameter
is the starting partition; the second disk parameter is the ending partition;
this given range of two or more partitions will be merged into one.

All partitions in the range, except for the first one, must be unmountable.

All data on merged partitions other than the first will be lost; data on the
first partition will be lost as well if the "force" argument is given.

If "force" is not given, and the first partition has a resizable file system
(e.g. JHFS+), it will be grown in a data-preserving manner, even if a different
file system is specified (in fact, your file system and volume name parameters
are both ignored in this case). If "force" is not given, and the first
partition is not resizable, you will be prompted if you want to erase.

If "force" is given, the first partition is always formatted. You should
do this if you wish to reformat to a new file system type.

Merged partitions are required to be ordered sequentially on disk.
See diskutil list for the actual on-disk ordering; BSD slice identifiers
may in certain circumstances not always be in numerical order but the
top-to-bottom order given by diskutil list is always the on-disk order.

Ownership of the affected disk is required.

Example: diskutil mergePartitions JHFS+ NewName disk3s4 disk3s7
         This example will merge all partitions *BETWEEN* disk3s4 and disk3s7,
         preserving data on disk3s4 but destroying data on disk3s5, disk3s6,
         disk3s7 and any invisible free space partitions between those disks;
         disk3s4 will be grown to cover the full space if possible.
Sayans-iMac:~ sayanhussain$